function myNew(fn, ...args) {
  let obj = {};
  obj.__proto__ = fn.prototype;
  let res = fn.apply(obj, args);
  return obj instanceof Object ? obj : res;
}

function A() {
  this.a = 1;
}
A.prototype.b = 2;
var a1 = n(A);
// var a2 = new A();

console.log(a1.a); // 1
console.log(a1.b); // 2
